MIDI Remote API
Programmer's Guide

About

Welcome to the Steinberg MIDI Remote API.

This document will guide you through the steps of writing a MIDI Remote API Script for a specific MIDI Controller Hardware.

NOTE: Scripts are written in the ES5 version of JavaScript

Basic Concept

The MIDI Remote API Script acts as a mediator between a Hardware Controller and Cubase / Nuendo

Cubase / Nuendo
Host
Host MIDI I/O
Host MIDI I/O
MIDI Remote Script
Written in Javascript (ES5)

MIDI Remote Script...
Host Functions
Quick Controls,
Selected Track,
MixConsole,
Key Commands,
...

Host Functions...
Viewer does not support full SVG 1.1

The MIDI Remote API Script emulates the hardware surface. This improves usability and recognizability.

Script Structure

The MIDI Remote API Script consists of three building blocks

  1. Driver Setup

    • create driver object
    • define driver ports to be associated with existing hardware midi ports
    • specify all possible port namings for automatic device detection
  2. Surface Layout

    • visualize the hardware's surface elements (e.g. knobs, faders, buttons)
    • bind surface elements to midi messages
  3. Host Mapping

    • create mapping pages for each user workflow (e.g. mixing, playing instruments, track navigation)
 

The following image illustrates that:

 
1. Driver Setup
Driver Setup
2. Surface Layout
Surface Layout
3. Host Mapping
Host Mapping
SurfaceElement
Knob, Fader, Button, ...
Element...
Page
Page
ValueBinding
ValueBinding
HostObject
Transport, MixConsole, ...
HostObject...
SurfaceValue
SurfaceValue
HostValue
HostValue
HostAccess
HostAccess
MIDI Input
MIDI Input
MIDI Output
MIDI Output
MIDI Binding
MIDI Binding
Viewer does not support full SVG 1.1

Getting Started

To get started please perform these steps:

  1. Make sure you have Visual Studio Code installed.
We highly recommend using Visual Studio Code for writing MIDI Remote API Scripts. We provide a JSDoc based auto-completion setup. You will not have to look up types and methods in a separate documentation. Visual Studio Code will help you write scripts intuitively.
  1. Make sure the folder of the Visual Studio Code executable is added to the PATH environment variable.

  2. Make sure you have the newest Cubase / Nuendo installed.

  3. Start Cubase / Nuendo.

  4. Create a project with audio and/or instrument tracks.

  5. Open the Remote tab in the lower zone.

  1. Open the MIDI Remote Driver Scripts folder.

Mac: /Users/<Username>/Documents/Steinberg/<Cubase or Nuendo>/MIDI Remote/Driver Scripts

Windows: C:\Users\<Username>\Documents\Steinberg&lt;Cubase or Nuendo>\MIDI Remote\Driver Scripts

 
  1. Open a console (win: cmd, mac: terminal) and go to the MIDI Remote Driver Scripts folder.

  2. Open Visual Studio Code from the command line like this:

code .

  1. Create a script file.

The MIDI Remote API Script file follows the structure:
<Driver Scripts Folder>/<Local or Public>/<vendor>/<device>/<vendor>_<device>.js

WARNING: Always use the folder Local for development, folder Public will be overwritten when starting Cubase / Nuendo.

Example:
<Driver Scripts Folder>/Local/Nektar/Impact_LX49Plus/Nektar_Impact_LX49Plus.js

  1. Connect your MIDI hardware controller.

  2. Open script console.

The Script Console appears like this:

After modifying the script file press the 'Reload Scripts' button.

Examples

Simple Device

To get to know the basic semantics of the API we will write a script for a fictional MIDI Controller having four encoder knobs. The visual representation in Cubase / Nuendo will appear like this:

 

Let's get right to the code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------

// get the api's entry point
var midiremote_api = require('midiremote_api_v1')

// create the device driver main object
var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'SimpleDevice', 'Steinberg Media Technologies GmbH')

// create objects representing the hardware's MIDI ports
var midiInput = deviceDriver.mPorts.makeMidiInput()
var midiOutput = deviceDriver.mPorts.makeMidiOutput()

// define all possible namings the devices MIDI ports could have
// NOTE: Windows and MacOS handle port naming differently
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('SimpleDevice IN')
    .expectOutputNameEquals('SimpleDevice OUT')
    
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('SimpleDevice (MIDI IN)')
    .expectOutputNameEquals('SimpleDevice (MIDI OUT)')


//-----------------------------------------------------------------------------
// 2. SURFACE LAYOUT - create control elements and midi bindings
//-----------------------------------------------------------------------------

// create control element representing your hardware's surface
var knob1 = deviceDriver.mSurface.makeKnob(0, 0, 1, 1.5)
var knob2 = deviceDriver.mSurface.makeKnob(1, 0, 1, 1.5)
var knob3 = deviceDriver.mSurface.makeKnob(2, 0, 1, 1.5)
var knob4 = deviceDriver.mSurface.makeKnob(3, 0, 1, 1.5)

// bind midi ports to surface elements
knob1.mSurfaceValue.mMidiBinding
    .setInputPort(midiInput)
    .setOutputPort(midiOutput)
    .bindToControlChange (0, 21) // channel 0, cc 21

knob2.mSurfaceValue.mMidiBinding
    .setInputPort(midiInput)
    .setOutputPort(midiOutput)
    .bindToControlChange (0, 22) // channel 0, cc 22

knob3.mSurfaceValue.mMidiBinding
    .setInputPort(midiInput)
    .setOutputPort(midiOutput)
    .bindToControlChange (0, 23) // channel 0, cc 23

knob4.mSurfaceValue.mMidiBinding
    .setInputPort(midiInput)
    .setOutputPort(midiOutput)
    .bindToControlChange (0, 24) // channel 0, cc 24

//-----------------------------------------------------------------------------
// 3. HOST MAPPING - create mapping pages and host bindings
//-----------------------------------------------------------------------------

// create at least one mapping page
var page = deviceDriver.mMapping.makePage('Example Mixer Page')

// create host accessing objects
var hostSelectedTrackChannel = page.mHostAccess.mTrackSelection.mMixerChannel


// bind surface elements to host accessing object values
page.makeValueBinding(knob1.mSurfaceValue, hostSelectedTrackChannel.mValue.mVolume)
page.makeValueBinding(knob2.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(0).mLevel)
page.makeValueBinding(knob3.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(1).mLevel)
page.makeValueBinding(knob4.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(2).mLevel)
ExampleCompany_SimpleDevice.js

Next Device

Most MIDI hardware controllers have a repetitive layout.
The next example demonstrates how to define 8 mixer channels on the surface.

Surface:

Code:



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84...

//-----------------------------------------------------------------------------
// 2. SURFACE LAYOUT - create control elements and midi bindings
//-----------------------------------------------------------------------------

var knobs = []
var faders = []
var buttons = []

var numChannels = 8

for(var channelIndex = 0; channelIndex < numChannels; ++channelIndex) {
    
    var knob = deviceDriver.mSurface.makeKnob(channelIndex * 2, 0, 2, 2)
    
    knob.mSurfaceValue.mMidiBinding
        .setInputPort(midiInput).setOutputPort(midiOutput)
        .bindToControlChange (0, 21 + channelIndex)
    
    knobs.push(knob)

    var fader = deviceDriver.mSurface.makeFader(channelIndex * 2 + 0.5, 2, 1, 6)
    
    fader.mSurfaceValue.mMidiBinding
        .setInputPort(midiInput).setOutputPort(midiOutput)
        .bindToControlChange (0, 29 + channelIndex)

    faders.push(fader)

    var button = deviceDriver.mSurface.makeButton(channelIndex * 2, 8, 2, 1)

    button.mSurfaceValue.mMidiBinding
        .setInputPort(midiInput).setOutputPort(midiOutput)
        .bindToControlChange (0, 37 + channelIndex)

    buttons.push(button)
}

//-----------------------------------------------------------------------------
// 3. HOST MAPPING - create mapping pages and host bindings
//-----------------------------------------------------------------------------

var page = deviceDriver.mMapping.makePage('Example Mixer Page')

var hostMixerBankZone = page.mHostAccess.mMixConsole.makeMixerBankZone()
    .excludeInputChannels()
    .excludeOutputChannels()

for(var channelIndex = 0; channelIndex < numChannels; ++channelIndex) {
    var hostMixerBankChannel = hostMixerBankZone.makeMixerBankChannel()

    var knobSurfaceValue = knobs[channelIndex].mSurfaceValue;
    var faderSurfaceValue = faders[channelIndex].mSurfaceValue;
    var buttonSurfaceValue = buttons[channelIndex].mSurfaceValue;

    page.makeValueBinding(knobSurfaceValue, hostMixerBankChannel.mValue.mPan)
    page.makeValueBinding(faderSurfaceValue, hostMixerBankChannel.mValue.mVolume)
    page.makeValueBinding(buttonSurfaceValue, hostMixerBankChannel.mValue.mSelected)
}
ExampleCompany_NextDevice.js

Real World Device

This example demonstrates a full stack MIDI Remote API Script.

Surface:

Code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308//-----------------------------------------------------------------------------
// 0. INCLUDE common functions
//-----------------------------------------------------------------------------
var helper = require('./helper')

//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------

var midiremote_api = require('midiremote_api_v1')

var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'RealWorldDevice', 'Steinberg Media Technologies GmbH')

var midiInput = deviceDriver.mPorts.makeMidiInput()
var midiOutput = deviceDriver.mPorts.makeMidiOutput()

deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('RealWorld In')
    .expectOutputNameEquals('RealWorld Out')

deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('MIDIIN (RealWorld)')
    .expectOutputNameEquals('MIDIOUT (RealWorld)')

deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('MIDIIN (RealWorld) 2')
    .expectOutputNameEquals('MIDIOUT (RealWorld) 2')

deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('MIDIIN (RealWorld) 3')
    .expectOutputNameEquals('MIDIOUT (RealWorld) 3')

var surface = deviceDriver.mSurface

//-----------------------------------------------------------------------------
// 2. SURFACE LAYOUT - create control elements and midi bindings
//-----------------------------------------------------------------------------

function makeFaderStrip(channelIndex, x, y) {
    var faderStrip = {}

    faderStrip.btnMute = surface.makeButton(x + 2 * channelIndex, y, 2, 1)
    faderStrip.btnSolo = surface.makeButton(x + 2 * channelIndex, y + 1, 2, 1)
    faderStrip.fader = surface.makeFader(x + 2 * channelIndex, y + 3, 2, 6).setTypeVertical()

    faderStrip.btnMute.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 59 + channelIndex)
    faderStrip.btnSolo.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 67 + channelIndex)
    faderStrip.fader.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 41 + channelIndex)

    faderStrip.fader.mSurfaceValue.mOnProcessValueChange = function (context, newValue, oldValue) {
        midiOutput.sendMidi(context, helper.sysex.setDisplayValueOfColumn(channelIndex, 0, newValue * (127)))
    }

    faderStrip.fader.mSurfaceValue.mOnDisplayValueChange = function (context, value, units) {
        midiOutput.sendMidi(context, helper.sysex.displaySetTextOfColumn(channelIndex, 2, value))
    }

    faderStrip.fader.mSurfaceValue.mOnTitleChange = function (context, objectTitle, valueTitle) {
        midiOutput.sendMidi(context, helper.sysex.displaySetTextOfColumn(channelIndex, 0, objectTitle))
        midiOutput.sendMidi(context, helper.sysex.displaySetTextOfColumn(channelIndex, 1, valueTitle))
    }

    faderStrip.fader.mSurfaceValue.mOnColorChange = function (context, r, g, b, a, isActive) {
        function updateRow(rowIdx, r, g, b, a) {
            midiOutput.sendMidi(context, helper.sysex.setDisplayColorOfColumn(channelIndex, rowIdx, r * 127 * a, g * 127 * a, b * 127 * a))
        }

        function updateAllRows(r, g, b, a) {
            for(var rowIdx = 0; rowIdx < 4; ++rowIdx)
                updateRow(rowIdx, r, g, b, a)
        }

        if(isActive)
            updateAllRows(r, g, b, a)
        else
            updateAllRows(1, 1, 1, 1)
    }

    return faderStrip
}

function makeKnobStrip(knobIndex, x, y) {
    var knobStrip = {}
    
    knobStrip.knob = surface.makeKnob(x + 2 * knobIndex, y, 2, 2)
    knobStrip.knob.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 21 + knobIndex).setTypeRelativeTwosComplement()

    knobStrip.button = surface.makeButton(x + 2 * knobIndex, y + 4, 2, 1)
    knobStrip.button.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 51 + knobIndex)

    knobStrip.pad1 = surface.makeTriggerPad(x + 2 * knobIndex, y + 5, 2, 2)
    knobStrip.pad1.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToNote(15, 96 + knobIndex)

    knobStrip.pad2 = surface.makeTriggerPad(x + 2 * knobIndex, y + 7, 2, 2)
    knobStrip.pad2.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToNote(15, 112 + knobIndex)

    return knobStrip
}

function makeTransport(x, y) {
    var transport = {}

    var w = 2
    var h = 2

    var currX = x

    function bindMidiCC(button, chn, num) {
        button.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(chn, num)
    }
    
    transport.btnRewind = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnRewind, 15, 112)
    currX = currX + w

    transport.btnForward = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnForward, 15, 113)
    currX = currX + w

    transport.btnStop = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnStop, 15, 114)
    currX = currX + w

    transport.btnStart = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnStart, 15, 115)
    currX = currX + w

    transport.btnCycle = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnCycle, 15, 116)
    currX = currX + w

    transport.btnRecord = surface.makeButton(currX, y, w, h)
    bindMidiCC(transport.btnRecord, 15, 117)
    currX = currX + w

    return transport
}

function makeSurfaceElements() {
    var surfaceElements = {}

    surfaceElements.btn_prevTrack = surface.makeButton(0, 7, 2, 1)
    surfaceElements.btn_prevTrack.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 102)

    surfaceElements.btn_nextTrack = surface.makeButton(2, 7, 2, 1)
    surfaceElements.btn_nextTrack.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 103)

    surfaceElements.btn_prevBinding = surface.makeButton(0, 3, 2, 1)
    surfaceElements.btn_prevBinding.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 81)
    
    surfaceElements.btn_nextBinding = surface.makeButton(0, 4, 2, 1)
    surfaceElements.btn_nextBinding.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 82)
    
    surfaceElements.btn_prevChannelBank = surface.makeButton(2, 3, 2, 1)
    surfaceElements.btn_prevChannelBank.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 85)
    
    surfaceElements.btn_nextChannelBank = surface.makeButton(2, 4, 2, 1)
    surfaceElements.btn_nextChannelBank.mSurfaceValue.mMidiBinding.setInputPort(midiInput).bindToControlChange(15, 86)

    surfaceElements.numStrips = 8

    surfaceElements.knobStrips = {}
    surfaceElements.faderStrips = {}

    var xKnobStrip = 5
    var yKnobStrip = 0

    surfaceElements.knobStripBlindPanel = surface.makeBlindPanel(xKnobStrip, yKnobStrip + 2, surfaceElements.numStrips * 2, 2)

    for(var i = 0; i < surfaceElements.numStrips; ++i) {
        surfaceElements.knobStrips[i] = makeKnobStrip(i, xKnobStrip, yKnobStrip)
        surfaceElements.faderStrips[i] = makeFaderStrip(i, 24, 0)
    }

    surfaceElements.transport = makeTransport(41, 7)

    surfaceElements.pianoKeys = surface.makePianoKeys(5, 10, 48, 7, 0, 48)

    return surfaceElements
}

var surfaceElements = makeSurfaceElements()

function makeTransportDisplayFeedback(button, ledID, colorID) {
	button.mSurfaceValue.mOnProcessValueChange = function (context, newValue) {
		midiOutput.sendMidi(context, [ 0xbf, ledID, colorID * newValue ])
	}
}

makeTransportDisplayFeedback(surfaceElements.transport.btnRewind, 112, 3)
makeTransportDisplayFeedback(surfaceElements.transport.btnForward, 113, 3)
makeTransportDisplayFeedback(surfaceElements.transport.btnStop, 114, 3)
makeTransportDisplayFeedback(surfaceElements.transport.btnStart, 115, 21)
makeTransportDisplayFeedback(surfaceElements.transport.btnCycle, 116, 49)
makeTransportDisplayFeedback(surfaceElements.transport.btnRecord, 117, 5)

//-----------------------------------------------------------------------------
// 3. HOST MAPPING - create mapping pages and host bindings
//-----------------------------------------------------------------------------

function makePageWithDefaults(name) {
    var page = deviceDriver.mMapping.makePage(name)

    page.makeActionBinding(surfaceElements.btn_prevTrack.mSurfaceValue, page.mHostAccess.mTrackSelection.mAction.mPrevTrack)
    page.makeActionBinding(surfaceElements.btn_nextTrack.mSurfaceValue, page.mHostAccess.mTrackSelection.mAction.mNextTrack)

    page.makeValueBinding(surfaceElements.transport.btnRewind.mSurfaceValue, page.mHostAccess.mTransport.mValue.mRewind)
    page.makeValueBinding(surfaceElements.transport.btnForward.mSurfaceValue, page.mHostAccess.mTransport.mValue.mForward)
    page.makeValueBinding(surfaceElements.transport.btnStop.mSurfaceValue, page.mHostAccess.mTransport.mValue.mStop).setTypeToggle()
    page.makeValueBinding(surfaceElements.transport.btnStart.mSurfaceValue, page.mHostAccess.mTransport.mValue.mStart).setTypeToggle()
    page.makeValueBinding(surfaceElements.transport.btnCycle.mSurfaceValue, page.mHostAccess.mTransport.mValue.mCycleActive).setTypeToggle()
    page.makeValueBinding(surfaceElements.transport.btnRecord.mSurfaceValue, page.mHostAccess.mTransport.mValue.mRecord).setTypeToggle()

    return page
}

function makeSubPage(subPageArea, name) {
    var subPage = subPageArea.makeSubPage(name)
    var msgText = 'sub page ' + name + ' activated'
    subPage.mOnActivate = function(activeDevice) {
        console.log(msgText)
    }
    return subPage
}

function makePageMixer() {
    var page = makePageWithDefaults('Mixer')

    var knobSubPageArea = page.makeSubPageArea('Knobs')

    var subPageVolume = makeSubPage(knobSubPageArea, 'Volume')
    var subPagePan = makeSubPage(knobSubPageArea, 'Pan')

    var subPageListSendLevel = []

    var numSendLevelSubPages = midiremote_api.mDefaults.getNumberOfSendSlots ()
    for(var subPageIdx = 0; subPageIdx < numSendLevelSubPages; ++subPageIdx) {
        var nameSubPage = 'Send Level ' + (subPageIdx + 1).toString()
        var subPageSendLevel = makeSubPage(knobSubPageArea, nameSubPage)
        subPageListSendLevel.push(subPageSendLevel)
    }

    var hostMixerBankZone = page.mHostAccess.mMixConsole.makeMixerBankZone()
        .excludeInputChannels()
        .excludeOutputChannels()

    page.makeActionBinding(surfaceElements.btn_prevChannelBank.mSurfaceValue, hostMixerBankZone.mAction.mPrevBank)
    page.makeActionBinding(surfaceElements.btn_nextChannelBank.mSurfaceValue, hostMixerBankZone.mAction.mNextBank)

    page.makeActionBinding(surfaceElements.btn_prevBinding.mSurfaceValue, knobSubPageArea.mAction.mPrev)
    page.makeActionBinding(surfaceElements.btn_nextBinding.mSurfaceValue, knobSubPageArea.mAction.mNext)

    function bindChannelBankItem(index) {
        var channelBankItem = hostMixerBankZone.makeMixerBankChannel()

        var knobValue = surfaceElements.knobStrips[index].knob.mSurfaceValue
        var selectedButtonValue = surfaceElements.knobStrips[index].button.mSurfaceValue

        var muteValue = surfaceElements.faderStrips[index].btnMute.mSurfaceValue
        var soloValue = surfaceElements.faderStrips[index].btnSolo.mSurfaceValue
        var faderValue = surfaceElements.faderStrips[index].fader.mSurfaceValue

        page.makeValueBinding (knobValue, channelBankItem.mValue.mVolume).setSubPage(subPageVolume)
        page.makeValueBinding (knobValue, channelBankItem.mValue.mPan).setSubPage(subPagePan)

        for(var subPageIdx = 0; subPageIdx < numSendLevelSubPages; ++subPageIdx) {
            var sendLevel = channelBankItem.mSends.getByIndex(subPageIdx).mLevel
            var subPage = subPageListSendLevel[subPageIdx]
            page.makeValueBinding (knobValue, sendLevel).setSubPage(subPage)
        }

        page.makeValueBinding (selectedButtonValue, channelBankItem.mValue.mSelected)

        page.makeValueBinding (muteValue, channelBankItem.mValue.mMute).setTypeToggle()
        page.makeValueBinding (soloValue, channelBankItem.mValue.mSolo).setTypeToggle()
        page.makeValueBinding (faderValue, channelBankItem.mValue.mVolume)
    }

    for(var i = 0; i < 8; ++i)
        bindChannelBankItem(i)

    return page
}

function makePageSelectedTrack() {
    var page = makePageWithDefaults('Selected Track')

    var selectedTrackChannel = page.mHostAccess.mTrackSelection.mMixerChannel

    for(var idx = 0; idx < surfaceElements.knobStrips.length; ++idx)
        page.makeValueBinding (surfaceElements.knobStrips[idx].knob.mSurfaceValue, selectedTrackChannel.mQuickControls.getByIndex(idx))
    
    return page
}

var pageMixer = makePageMixer()
var pageSelectedTrack = makePageSelectedTrack()

pageMixer.mOnActivate = function (context) {
	helper.display.reset(context, midiOutput)
	console.log('from script: RealWorldDevice page "Mixer" activated')
}

pageSelectedTrack.mOnActivate = function (context) {
	helper.display.reset(context, midiOutput)
	console.log('from script: RealWorldDevice page "Selected Track" activated')
}
ExampleCompany_RealWorldDevice.js

Sysex ID Detection

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------

// get the api's entry point
var midiremote_api = require('midiremote_api_v1')

// create the device driver main object
var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'SysexIDExampleDevice', 'Steinberg Media Technologies GmbH')

// create objects representing the hardware's MIDI ports
var midiInput = deviceDriver.mPorts.makeMidiInput()
var midiOutput = deviceDriver.mPorts.makeMidiOutput()

// define all possible namings the devices MIDI ports could have
// NOTE: Windows and MacOS handle port naming differently
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
	.expectInputNameContains('unique port name fragment')
	.expectOutputNameContains('unique port name fragment')
	.expectSysexIdentityResponse(/*vendor id (1 or 3 bytes, here: 3 bytes)*/'00n1n2', /*device family*/'n1n2', /*model number*/'n1n2')

Command Bindings

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------
var midiremote_api = require('midiremote_api_v1')
var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'CommandButtonDevice', 'Steinberg Media Technologies GmbH')

// ...

//-----------------------------------------------------------------------------
// 2. SURFACE LAYOUT - create control elements and midi bindings
//-----------------------------------------------------------------------------
var button1 = deviceDriver.mSurface.makeButton(0, 0, 2, 1)
var button2 = deviceDriver.mSurface.makeButton(2, 0, 2, 1)
var button3 = deviceDriver.mSurface.makeButton(4, 0, 2, 1)

// ...

//-----------------------------------------------------------------------------
// 3. HOST MAPPING - create mapping pages and host bindings
//-----------------------------------------------------------------------------
var page = deviceDriver.mMapping.makePage('Main Page')

page.makeCommandBinding(button1.mSurfaceValue, 'Edit', 'Undo')
page.makeCommandBinding(button2.mSurfaceValue, 'Edit', 'Redo')
page.makeCommandBinding(button3.mSurfaceValue, /*[PLACE TO PASTE COPIED SNIPPET]*/)
  • Add Track
    • Add Track...
    • Arranger
    • Audio
    • Audio Mono
    • Chord
    • Effect
    • Folder
    • Group
    • Instrument
    • Marker
    • MIDI
    • Ruler
    • Sampler
    • Signature
    • Tempo
    • Transpose
    • Using Track Preset...
    • VCA
    • Video
  • ADM Editor
    • Add Bed
    • Add Object
    • ADM Authoring...
    • Apply Source Track Name
    • Create objects from selected tracks
    • Open Group Editor
    • Open Trim and Downmix Editor
    • Remove Selected Audio Object
  • Analyze
    • Spectrum Analyzer
    • Statistics
  • Arranger
    • Activate
    • First Chain Step
    • First Repeat
    • Last Chain Step
    • Last Repeat
    • Trigger Arranger Event 1
    • Trigger Arranger Event 2
    • Trigger Arranger Event 3
    • Trigger Arranger Event 4
    • Trigger Arranger Event 5
    • Trigger Arranger Event 6
    • Trigger Arranger Event 7
    • Trigger Arranger Event 8
    • Trigger Arranger Event 9
    • Trigger Arranger Event 10
    • Trigger Arranger Event 11
    • Trigger Arranger Event 12
    • Trigger Arranger Event 13
    • Trigger Arranger Event 14
    • Trigger Arranger Event 15
    • Trigger Arranger Event 16
    • Trigger Arranger Event 17
    • Trigger Arranger Event 18
    • Trigger Arranger Event 19
    • Trigger Arranger Event 20
  • Audio
    • Adjust Fades to Range
    • Apply Standard Fade In
    • Apply Standard Fade Out
    • Auto-Grid
    • Bounce Selection
    • Close Gaps (Crossfade)
    • Close Gaps (Time Stretch)
    • Constrain Delay Compensation
    • Copy Warp Markers from Selected Event
    • Create Sampler Track
    • Crossfade
    • Decrement Event Volume
    • Decrement Fade-In Length
    • Decrement Fade-Out Length
    • Delete Overlaps
    • Detect Silence
    • Disable/Enable Track
    • Dissolve Part
    • Event or Range as Region
    • Events from Regions
    • Events to Origin
    • Events to Part
    • Fade In to Cursor
    • Fade In to Range Start
    • Fade Out from Cursor
    • Fade Out from Range End
    • Find Selected in Pool
    • Generate Harmony Voices...
    • Increment Event Volume
    • Increment Fade-In Length
    • Increment Fade-Out Length
    • Invert Phase On/Off
    • Make Extension Permanent
    • Minimize File
    • Mono to Multi-Channel...
    • Multi-Channel to Mono...
    • Open Fade Editor(s)
    • Paste Warp Markers to Selected Events
    • Remove Extension from Selected Events
    • Remove Fade In
    • Remove Fade Out
    • Remove Fades
    • Remove Volume Curve
    • Set Definition From Tempo...
    • Set Tempo From Event
    • Snap Point to Cursor
    • Stretch to Project Tempo
    • Update Origin
  • Audio Alignment
    • Add Selection as Alignment Reference
    • Add Selection as Alignment Target
    • Align Audio
    • Open Audio Alignment Panel
    • Remove Alignment Reference
    • Remove All Alignment Targets
  • Audio Export
    • Increase Counter Start Value
    • Perform Audio Export
    • Reset Counter Start Value
    • Sync Channel Selection with MixConsole
  • Audio Performance
    • Reset Processing Overload Indicator
  • Audio Realtime Processing
    • Create Warp Markers from Hitpoints
    • Flatten Real Time Processing
    • Unstretch Audio
  • Automation
    • Automation Mode - Auto-Latch
    • Automation Mode - Cross-Over
    • Automation Mode - Touch
    • Automation Mode - Trim
    • Automation Panel
    • Delete All Automation in Project
    • Delete Automation in Range
    • Delete Automation of Selected Tracks
    • Fill Gaps
    • Fill Gaps on Selected Tracks
    • Fill Gaps with Current Value (Selected Tracks)
    • Fill Loop
    • Fill To End
    • Fill To Punch
    • Fill To Start
    • Freeze All Trim Automation in Project
    • Freeze Trim Automation of Selected Tracks
    • Hide All Automation
    • Hide Automation
    • Punch Out of Latch Automation
    • Read Automation for All Tracks On/Off
    • Read Automation for Selected Tracks On/Off
    • Show All - Used Only
    • Show All EQ Automation
    • Show All Insert Automation
    • Show All Pan Automation
    • Show All Send Automation
    • Show All Used Automation
    • Show All Volume Automation
    • Show Automation
    • Show Used Automation (Selected Tracks)
    • Suspend Reading All
    • Suspend Reading Dynamics
    • Suspend Reading EQ
    • Suspend Reading Inserts
    • Suspend Reading Mute
    • Suspend Reading Others
    • Suspend Reading Pan
    • Suspend Reading Sends
    • Suspend Reading Volume
    • Suspend Reading/Writing All
    • Suspend Writing All
    • Suspend Writing Dynamics
    • Suspend Writing EQ
    • Suspend Writing Inserts
    • Suspend Writing Mute
    • Suspend Writing Others
    • Suspend Writing Pan
    • Suspend Writing Sends
    • Suspend Writing Volume
    • Use Virgin Territories
    • Write Automation for All Tracks On/Off
    • Write Automation for Selected Tracks On/Off
  • Beat Designer
    • Fill Loop with Pattern
    • Insert Pattern at Cursor
    • Insert Pattern at Left Locator
    • Insert Subbank at Cursor
    • Insert Subbank at Left Locator
  • Channel & Track Visibility
    • Agents: Hide Muted Tracks
    • Agents: Hide Selected Channels/Tracks
    • Agents: Redo Visibility Change
    • Agents: Show All Channels/Tracks
    • Agents: Show Channels that are Connected to the First Selected Channel
    • Agents: Show Channels/Tracks with Data
    • Agents: Show Channels/Tracks with Data at the Cursor Position
    • Agents: Show Channels/Tracks with Data between the Locators
    • Agents: Show Only Selected Channels/Tracks
    • Agents: Show Tracks with Selected Events
    • Agents: Undo Visibility Change
    • Create Visibility Configuration
    • Sync Visibility of Project and MixConsole: On/Off
    • Update Visibility Configuration
    • Visibility Configuration 1
    • Visibility Configuration 2
    • Visibility Configuration 3
    • Visibility Configuration 4
    • Visibility Configuration 5
    • Visibility Configuration 6
    • Visibility Configuration 7
    • Visibility Configuration 8
  • Channel Settings
    • Show/Hide Direct Routing
    • Show/Hide Output Chain
  • Chords
    • Assign Voices to Notes
    • Chord Editing - Add to Chord Track
    • Chord Editing - Drop 2
    • Chord Editing - Drop 2 + 4
    • Chord Editing - Drop 3
    • Chord Editing - Inversions: Move Down
    • Chord Editing - Inversions: Move Up
    • Chord Editing - Match with Chord Track
    • Chord Pads - Open Remote Settings
    • Chord Pads - Fewer Tensions
    • Chord Pads - Latch Chords On/Off
    • Chord Pads - More Tensions
    • Chord Pads - Show/Hide Editor/Assistant
    • Chord Pads - Transpose Down
    • Chord Pads - Transpose Up
    • Chords to MIDI
    • Create Chord Events
    • Map to Chord Track
    • Set up Musical Scales...
    • Show/Hide Chord Pads
  • Control Room
    • AFL/PFL
    • Click On/Off
    • Control Room On/Off
    • Cue 1 On/Off
    • Cue 2 On/Off
    • Cue 3 On/Off
    • Cue 4 On/Off
    • Deactivate All Listen States
    • Dim Signal On/Off
    • Enable/Disable Listen for Output (LE)
    • Phones Channel On/Off
    • Reference Level On/Off
    • Select Control Room Source
    • Select Downmix Preset 1
    • Select Downmix Preset 2
    • Select Downmix Preset 3
    • Select Downmix Preset 4
    • Select Monitor 1
    • Select Monitor 2
    • Select Monitor 3
    • Select Monitor 4
    • Speaker Solo: Bottom Front Center
    • Speaker Solo: Bottom Front Left
    • Speaker Solo: Bottom Front Right
    • Speaker Solo: Cancel
    • Speaker Solo: Center
    • Speaker Solo: Front
    • Speaker Solo: Left
    • Speaker Solo: Left of Center
    • Speaker Solo: Left-Right
    • Speaker Solo: LFE
    • Speaker Solo: Rear
    • Speaker Solo: Rear to Front
    • Speaker Solo: Right
    • Speaker Solo: Right of Center
    • Speaker Solo: Side
    • Speaker Solo: Side Left
    • Speaker Solo: Side Right
    • Speaker Solo: Solo to Center
    • Speaker Solo: Surround Left
    • Speaker Solo: Surround Right
    • Speaker Solo: Top Back Center
    • Speaker Solo: Top Back Left
    • Speaker Solo: Top Back Right
    • Speaker Solo: Top Center
    • Speaker Solo: Top Front Center
    • Speaker Solo: Top Front Left
    • Speaker Solo: Top Front Right
    • Speaker Solo: Top Side Left
    • Speaker Solo: Top Side Right
    • Talkback On/Off
  • Crossfade Editor
    • Play Crossfade
    • Play Fade In
    • Play Fade Out
  • Devices
    • Audio Connections...
    • Audio Performance
    • Control Room
    • Generic Remote
    • Max. Record Time
    • MIDI Device Manager...
    • MIDI Remote Manager
    • MixConsole
    • MixConsole 2
    • MixConsole 3
    • MixConsole 4
    • MixConsole in Project Window
    • MMC Master Panel
    • On-Screen Keyboard
    • Studio Panel
    • Studio Setup...
    • System Component Information
    • Test Track Mixer - FDH in Standard Window
    • Time Display
    • Video Player
    • VST Channel Load
    • VST Instruments
    • VST Network Monitor
    • VST Plug-in Manager
    • VST Routing
  • Direct Offline Processing
    • Add Plug-in
    • Add Process
    • Apply
    • Bank 1
    • Bank 2
    • Bank 3
    • Bank 4
    • Bypass Selected Process
    • Direct Offline Processing
    • Discard
    • Favorite 1
    • Favorite 2
    • Favorite 3
    • Favorite 4
    • Favorite 5
    • Favorite 6
    • Favorite 7
    • Favorite 8
    • Favorite 9
    • Make Direct Offline Processing Permanent
    • Toggle Auto Apply
  • Edit
    • Acoustic Feedback On/Off
    • Activate/Deactivate Focused Object
    • All
    • All on Selected Tracks
    • Apply Click Pattern to Equal Signatures
    • Apply Preset...
    • Auto Select Events under Cursor
    • Auto-Scroll On/Off
    • Automation Follows Events
    • Clean Up Lanes
    • Convert to Real Copy
    • Copy
    • Copy A<->B Setting
    • Copy Click Pattern to Clipboard
    • Create Tracks from Lanes
    • Crop
    • Cut
    • Cut Head
    • Cut Tail
    • Cut Time
    • Deactivate All Mute States
    • Deactivate All Solo States
    • Delete
    • Delete Time
    • Duplicate
    • Edit Channel Panner
    • Edit Channel Settings
    • Edit Info Line
    • Edit VST Instrument
    • Enlarge Selected Track
    • Equal Pitch - all Octaves
    • Equal Pitch - same Octave
    • Event Ends to Cursor
    • Event Starts to Cursor
    • Events to Back
    • Events to Front
    • Events to Selected Track
    • Events under Cursor
    • Expand/Reduce
    • Fill Loop
    • Find Track/Channel
    • From Cursor to End
    • From Start to Cursor
    • Global Copy
    • Glue
    • Grid Type: Adapt to Zoom
    • Grid Type: Bar
    • Grid Type: Beat
    • Grid Type: Use Quantize
    • Group
    • Group Editing on Selected Tracks On/Off
    • History...
    • In Loop
    • Insert Silence
    • Invert
    • Invert
    • Key Commands...
    • Left Selection Side to Cursor
    • Listen
    • Lock...
    • Lock/Unlock Track
    • Monitor
    • Move Insert Cursor To Part Start
    • Mute
    • Mute
    • Mute/Unmute Objects
    • None
    • Open
    • Open Device Panel
    • Part/Clip Editing Mode: Active Part/Clip
    • Part/Clip Editing Mode: All Parts/Clips
    • Part/Clip Editing Mode: All Parts/Clips on Active Track
    • Part/Clip Editing Mode: Toggle All & Active Parts/Clips
    • Paste
    • Paste at Origin
    • Paste Click Pattern to Selected Signatures
    • Paste Relative to Cursor
    • Paste Time
    • Paste Time at Origin
    • Paste to Matching Track Name
    • Preferences...
    • Primary Parameter: Decrease
    • Primary Parameter: Fine Decrease
    • Primary Parameter: Fine Increase
    • Primary Parameter: Increase
    • Process Bars Dialog...
    • Process Tempo
    • Profile Manager...
    • Read
    • Record Enable
    • Redo
    • Rename First Selected Track
    • Rename Media Files
    • Rename Selected Events
    • Render Audio Click between Locators
    • Render MIDI Click between Locators
    • Repeat...
    • Reset Click Pattern to Default
    • Reset to Default
    • Right Selection Side to Cursor
    • Ruler Display Format
    • Ruler Mode: Bars+Beats Linear
    • Ruler Mode: Time Linear
    • Save as Default
    • Scale Assistant: Quantize Pitches
    • Scale Assistant: Toggle Show Scale Note Guides
    • Scale Assistant: Toggle Snap Live Input
    • Scale Assistant: Toggle Snap Pitch Editing
    • Secondary Parameter: Decrease
    • Secondary Parameter: Fine Decrease
    • Secondary Parameter: Fine Increase
    • Secondary Parameter: Increase
    • Select Controllers in Note Range
    • Select Event
    • Selected Tracks (with Current Settings)
    • Selected Tracks...
    • Set Spacer between Selected Events
    • Setup...
    • Show Click Patterns
    • Show Lanes
    • Slip Event Content Left
    • Slip Event Content Right
    • Snap Off
    • Snap On
    • Snap On/Off
    • Snap Type: Events
    • Snap Type: Events + Cursor
    • Snap Type: Events + Grid + Cursor
    • Snap Type: Grid
    • Snap Type: Grid + Cursor
    • Snap Type: Grid Relative
    • Snap Type: Magnetic Cursor
    • Snap Type: Shuffle
    • Solo
    • Solo Defeat
    • Solo Editor Mode: Solo All Parts/Clips
    • Solo Editor Mode: Solo follows 'Part/Clip Editing Mode'
    • Solo Editor Mode: Toggle Modes
    • Solo Lane
    • Split
    • Split at Cursor
    • Split Loop
    • Stationary Cursor
    • Switch MIDI Editor Grid Type
    • Toggle A/B Setting
    • Undo
    • Ungroup
    • Unlock
    • Unmute
    • Write
  • Editors
    • Edit In-Place
    • Open Audio Part Editor
    • Open Audio Part Editor in Lower Zone
    • Open Audio Part Editor in Window
    • Open Drum Editor
    • Open Drum Editor in Lower Zone
    • Open Drum Editor in Window
    • Open in separate Window/Lower Zone
    • Open In-Place Editor
    • Open Key Editor
    • Open Key Editor in Lower Zone
    • Open Key Editor in Window
    • Open List Editor
    • Open Sample Editor
    • Open Sample Editor in Lower Zone
    • Open Sample Editor in Window
    • Open Score Editor
    • Open Score Editor in Lower Zone
    • Open Score Editor in Window
    • Open/Close Editor
    • Set up Editor Preferences
    • Show/Hide Global Tracks in Editor
    • Track Display Settings: Active Track Only
    • Track Display Settings: All Visible Tracks
    • Track Display Settings: Show/Hide Tracks in Editor
    • Track Display Settings: Toggle Modes
    • Visibility: Keep Editor Contents on/off
  • Export
    • AAF...
  • File
    • Audio CD...
    • Audio File...
    • Audio from Video File...
    • Audio Mixdown...
    • Back up Project...
    • Close
    • Export Pool...
    • Import Pool...
    • Key Command Assignments...
    • MIDI File...
    • MIDI File...
    • MIDI Loop...
    • MusicXML...
    • MusicXML...
    • New
    • New Empty Project
    • New Library...
    • Notepad Data...
    • Open
    • Open Library...
    • Page Setup...
    • Perform Export Selected Events
    • Print...
    • Quit
    • Revert
    • Save
    • Save As
    • Save as Template...
    • Save Library...
    • Save New Version
    • Scores...
    • Selected Events...
    • Selected Tracks...
    • Tempo Track...
    • Tempo Track...
    • Track Archive...
    • Tracks from Project...
    • Video File...
    • Video...
    • Write MIDI File to Project Folder
  • Focus
    • Back
    • Confirm
    • Escape
    • Forward
  • Game Audio Connect
    • Trigger Export to Game Audio Engine
  • HeadTracking
    • Head Tracking
  • Hitpoints
    • Calculate Hitpoints
    • Create Audio Slices from Hitpoints
    • Create Markers from Hitpoints
    • Divide Audio Events at Hitpoints
    • Remove Hitpoints
  • Hub
    • Open Hub
  • Import
    • AAF...
  • Inspector
    • Open/Close Basics Section
    • Open/Close Chords Section
    • Open/Close Cue Sends Section
    • Open/Close Device Panel Section
    • Open/Close Direct Routing Section
    • Open/Close Equalizer Section
    • Open/Close Expression Map Section
    • Open/Close Fader Section
    • Open/Close Inserts Section
    • Open/Close MIDI Inserts Section
    • Open/Close MIDI Modifiers Section
    • Open/Close MIDI Sends Section
    • Open/Close Note Expression Section
    • Open/Close Notepad Section
    • Open/Close Pre Section
    • Open/Close Quick Controls Section
    • Open/Close Routing Section
    • Open/Close Sends Section
    • Open/Close Strip Section
    • Open/Close Surround Pan Section
    • Open/Close Track Versions Section
  • Key Commands
    • Open Key Commands Launcher
  • Marker
    • Activate Marker Track
    • Add and Edit Cycle Marker on Active Track
    • Add and Edit Cycle Marker on Selected Track
    • Add and Edit Position Marker on Active Track
    • Add and Edit Position Marker on Selected Track
    • Add Cycle Marker on Active Track
    • Add Cycle Marker on Selected Track
    • Add Position Marker on Active Track
    • Add Position Marker on Selected Track
  • Media
    • Add Favorite
    • At Cursor
    • At Left Locator
    • At Origin
    • Browse: Back
    • Browse: Forward
    • Browse: Up
    • Convert Files...
    • Create Folder
    • Create New Folder
    • Create Sampler Track
    • Debug Browser
    • Empty Trash
    • Find Missing Files...
    • Generate Thumbnail Cache
    • Hide Folders That Are Not Scanned
    • Import Audio CD...
    • Import Medium...
    • Loop Browser
    • MediaBay
    • New Version
    • Open Remote Browser
    • Open/Close Attribute Inspector
    • Open/Close Favorites
    • Open/Close File Browser
    • Open/Close Filters
    • Open/Close Previewer
    • Prepare Archive...
    • Preview Active On/Off
    • Preview AutoPlay On/Off
    • Preview Cycle On/Off
    • Preview in Context On/Off
    • Preview Pause On/Off
    • Preview Start
    • Preview Stop
    • Preview Sync On/Off
    • Reconstruct
    • Refresh Views
    • Remove Favorite
    • Remove Missing Files
    • Remove Unused Media
    • Rescan Disk
    • Reset All Filters
    • Reset Result Filters
    • Results: Include Folders and Subfolders
    • Reveal in Finder
    • Revert
    • Select in Project
    • Select Media Types
    • Set Pool Record Folder
    • Show Only Selected Folder
    • Shuffle Results
    • Sound Browser
    • Stop Updating Results
    • Update Results
    • Write Attributes to File
  • MediaInspector
    • RemoveAttribute
  • MediaList
    • CommitTags
    • RemoveWriteProtection
    • SetWriteProtection
  • MIDI
    • Apply Preset...
    • Auto Select Controllers
    • Bounce MIDI
    • Calculate Tempo from MIDI Events...
    • CC Automation Setup...
    • Controller Lane Setup 1
    • Controller Lane Setup 2
    • Controller Lane Setup 3
    • Controller Lane Setup 4
    • Controller Lane Setup 5
    • Controller Lane Setup 6
    • Controller Lane Setup 7
    • Controller Lane Setup 8
    • Controller Lane Setup 9
    • Controller Lane Setup 10
    • Controller Lane Setup 11
    • Controller Lane Setup 12
    • Controller Lane Setup 13
    • Controller Lane Setup 14
    • Controller Lane Setup 15
    • Controller Lane Setup 16
    • Delete Continuous Controllers
    • Delete Controllers
    • Delete Doubles
    • Delete Notes...
    • Delete Overlaps (mono)
    • Delete Overlaps (poly)
    • Dissolve Part
    • Drum Editor: Show Note Length On/Off
    • Drum Map Setup...
    • Expression Map Setup...
    • Extract MIDI Automation
    • Fixed Lengths
    • Fixed Velocity
    • Freeze Length
    • Freeze MIDI Modifiers
    • Insert Velocities...
    • Insert Velocity 1
    • Insert Velocity 2
    • Insert Velocity 3
    • Insert Velocity 4
    • Insert Velocity 5
    • Legato
    • List Editor: Show/Hide Filters
    • Merge MIDI in Loop...
    • Mirror
    • O-Note Conversion
    • Pedals to Note Length
    • Pitch Visibility: On/Off
    • Pitchbend: Snap Pitchbend Events On/Off
    • Project Input Transformer...
    • Record In Editor
    • Repeat Loop
    • Reset
    • Restrict Polyphony...
    • Reverse
    • Send All Notes Off Message
    • Setup...
    • Show Used Controllers
    • Show/Hide Controller Lanes
    • Thin Out Data
    • Toggle Computer Keyboard Input
    • Toggle MIDI Input
    • Toggle Step Input
    • Transpose Notes
    • Transpose Setup...
    • Type of New Controller Events: Toggle Step/Ramp
    • Velocity...
  • MIDI Remote
    • Open MIDI Remote Mapping Assistant
    • Scripting Tools: Highlight Bounding Rects
    • Scripting Tools: Open Console
    • Scripting Tools: Open ReadMe
    • Scripting Tools: Open Script Folder
    • Scripting Tools: Reload Scripts
    • Show/Hide Functions Browser in MIDI Remote Mapping Assistant
  • MixConsole History
    • Redo MixConsole Step
    • Undo MixConsole Step
  • MixConsole Snapshots
    • Save MixConsole Snapshot
  • Mixer
    • Activate Record Enable for All Audio Tracks
    • Add Track To Selected: FX Channel
    • Add Track To Selected: Group Channel
    • Add Track To Selected: VCA Fader
    • Bypass: Channel Strip
    • Bypass: Channel Strip on Main Mix
    • Bypass: EQs
    • Bypass: EQs on Main Mix
    • Bypass: Inserts
    • Bypass: Inserts on Main Mix
    • Bypass: Sends
    • Deactivate Record Enable for All Audio Tracks
    • Direct Routing: Summing Mode On/Off
    • Edit Channel Panner for selected
    • Edit Channel Settings for selected
    • EQ/Filter Transition: Quick
    • EQ/Filter Transition: Soft
    • Expand: Channel Strip
    • Expand: Cue Sends
    • Expand: Device Panels
    • Expand: Direct Routing
    • Expand: EQs
    • Expand: Filters/Gain
    • Expand: Inserts
    • Expand: Quick Controls
    • Expand: Routing
    • Expand: Sends
    • Expand: VCA
    • File: Load Selected Channels
    • File: Save Selected Channels
    • Hide: Audio
    • Hide: Groups
    • Hide: Inputs
    • Hide: Instruments
    • Hide: MIDI
    • Hide: Outputs
    • Hide: Returns
    • Hide: VCAs
    • Listen for All Visible Channels On/Off
    • Loudness: Enable
    • Loudness: Reset
    • Loudness: Switch between +9dB and +18dB Scale
    • Loudness: Switch between LU and LUFS
    • Master Meter: AES17 (+3dB)
    • Meters: Hold Forever
    • Meters: Hold Peaks
    • Meters: Input
    • Meters: Post Fader
    • Meters: Post Panner
    • Meters: Reset
    • Pre/Post
    • Show All
    • Show/Hide Channel Name
    • Show/Hide Channel Overview
    • Show/Hide Equalizer Curve
    • Show/Hide Latency
    • Show/Hide Meter Bridge
    • Show/Hide Notepad
    • Show/Hide Pictures
    • Views: Channel Strip
    • Views: Cue Sends
    • Views: Device Panels
    • Views: Direct Routing
    • Views: EQs
    • Views: Filters/Gain
    • Views: Inserts
    • Views: Quick Controls
    • Views: Routing
    • Views: Sends
    • Views: VCA
    • Windows: Close All Plug-Ins
    • Zoom In
    • Zoom In Vertically
    • Zoom Out
    • Zoom Out Vertically
  • Note Expression
    • Consolidate Note Expression Overlaps
    • Convert to Note Expression
    • Dissolve Note Expression
    • Distribute Notes to MIDI Channels
    • Double-Click opens Note Expression Editor On/Off
    • Editor Size: Decrease
    • Editor Size: Increase
    • Note Expression MIDI Setup...
    • Open Note Expression Editor
    • Paste Note Expression
    • Record MIDI as Note Expression
    • Remove Note Expression
    • Show/Hide Note Expression Data
    • Trim Note Expression to Note Length
  • Nudge
    • Down
    • Down (Larger Step)
    • Graphical Bottom
    • Graphical Left
    • Graphical Right
    • Graphical Top
    • Left
    • Loop Range Left
    • Loop Range Right
    • Nudge Bottom Down
    • Nudge Bottom Up
    • Nudge End Left
    • Nudge End Right
    • Nudge Start Left
    • Nudge Start Right
    • Nudge Top Down
    • Nudge Top Up
    • Right
    • Up
    • Up (Larger Step)
  • Preset
    • Open/Close Browser
    • Track Preset: Open Browser
  • Process
    • Envelope
    • Fade In
    • Fade Out
    • Gain
    • Invert Phase
    • Normalize
    • Pitch Shift
    • Remove DC Offset
    • Resample
    • Reverse
    • Silence
    • Stereo Flip
    • Time Stretch
  • Project
    • Auto Fades Settings...
    • Bring To Front
    • Colorize
    • Divide Track List
    • Duplicate Tracks
    • Flip Fold States
    • Fold Tracks
    • Markers
    • Move Selected Tracks to New Folder
    • Notepad
    • Open Layout...
    • Open Pool Window
    • Project Colors Setup...
    • Project Setup...
    • Remove Empty Tracks
    • Remove Selected Tracks
    • Set Timecode at Cursor...
    • Tap Tempo
    • Tempo Detection...
    • Tempo Track
    • Toggle Selected Track
    • Track Controls Settings
    • Unfold Tracks
  • Quantize Category
    • AudioWarp Quantize On/Off
    • Auto Quantize On/Off
    • Create Groove Quantize Preset
    • Freeze MIDI Quantize
    • Quantize
    • Quantize MIDI Event Ends
    • Quantize MIDI Event Lengths
    • Quantize Panel
    • Reset Quantize
    • Set Quantize to 1/1
    • Set Quantize to 1/2
    • Set Quantize to 1/4
    • Set Quantize to 1/8
    • Set Quantize to 1/16
    • Set Quantize to 1/32
    • Set Quantize to 1/64
    • Set Quantize to 1/128
    • Soft Quantize On/Off
    • Toggle Quantize Dotted
    • Toggle Quantize Triplet
  • Render in Place
    • Render (with Current Settings)
    • Render Settings...
  • Sample Editor
    • Bypass Warping
    • Reanalyze Audio
    • VariAudio - Bypass VariAudio
    • VariAudio - Correct Pitch
    • VariAudio - Extract MIDI (no Dialog)
    • VariAudio - Extract MIDI...
    • VariAudio - Reset All Changes
    • VariAudio - Reset Formant Shift Changes
    • VariAudio - Reset Pitch Changes
    • VariAudio - Reset Pitch Curve Changes
    • VariAudio - Reset Volume Changes
    • VariAudio - Reset Warp Changes
    • VariAudio - Show MIDI Reference Track
    • VariAudio - Toggle Pitch Snap Mode
    • VariAudio - Toggle Smart Control Mode
    • Zoom Mode: Clip-Based
    • Zoom Mode: Global
  • Score Align Elements
    • Bottom
    • Center Horizontally
    • Center Vertically
    • Dynamics
    • Left
    • Right
    • Top
  • Score Functions
    • 50%
    • 75%
    • 100%
    • 120%
    • 200%
    • 300%
    • 400%
    • 600%
    • Attribute Set 1
    • Attribute Set 2
    • Attribute Set 3
    • Attribute Set 4
    • Attribute Set 5
    • Attribute Set 6
    • Attribute Set 7
    • Attribute Set 8
    • Attribute Set 9
    • Attribute Set 10
    • Attribute Set 11
    • Attribute Set 12
    • Attribute Set 13
    • Attribute Set 14
    • Attribute Set 15
    • Attribute Set 16
    • Auto Layout...
    • Auto Layout: Bars and Staves
    • Auto Layout: Hide All Empty Staves
    • Auto Layout: Hide Empty Staves
    • Auto Layout: Move All Bars
    • Auto Layout: Move All Staves
    • Auto Layout: Move Bars
    • Auto Layout: Move Staves
    • Auto Layout: Optimize All
    • Auto Layout: Spread All Pages
    • Auto Layout: Spread Page
    • Build Accelerando...
    • Build N-Tuplet...
    • Build Repeat...
    • Build Trill...
    • Clear Bar
    • Convert to Grace Note
    • Display Markers
    • Enharmonic Shift: #
    • Enharmonic Shift: ##
    • Enharmonic Shift: ()
    • Enharmonic Shift: ?
    • Enharmonic Shift: b
    • Enharmonic Shift: bb
    • Enharmonic Shift: no (hide)
    • Enharmonic Shift: off (automatic)
    • Explode
    • Extract Voices
    • Flip
    • Force Update
    • Get Info
    • Group/Ungroup Notes
    • Hide/Show
    • Insert Slur
    • Insert Voice: 1
    • Insert Voice: 2
    • Insert Voice: 3
    • Insert Voice: 4
    • Make Chord Symbols
    • Marker Track to Form
    • Merge All Staves
    • Move To String 1
    • Move To String 2
    • Move To String 3
    • Move To String 4
    • Move To String 5
    • Move To String 6
    • Move To String 7
    • Move To String 8
    • Move To String 9
    • Move To String 10
    • Move To String 11
    • Move To String 12
    • Move To Voice 1
    • Move To Voice 2
    • Move To Voice 3
    • Move To Voice 4
    • Move To Voice 5
    • Move To Voice 6
    • Move To Voice 7
    • Move To Voice 8
    • Number of Bars
    • One down
    • One up
    • Paste Note Attributes
    • Position Panel
    • Reset Layout...
    • Score Notes to MIDI
    • Show Bar Repeat Sign
    • Show Chord Track
    • Show Regular Notation
    • Show Rhythmic Notation
    • Spacer and Hidden to Layout
    • Verse 1
    • Verse 2
    • Verse 3
    • Verse 4
    • Verse 5
    • Verse 6
  • Score Meter Scale
    • 50%
    • 75%
    • 100%
    • 120%
    • 200%
    • 300%
    • 400%
    • 600%
    • CM
    • Edit Mode: 50 %
    • Edit Mode: 80 %
    • Edit Mode: 100 %
    • Edit Mode: 150 %
    • Edit Mode: 200 %
    • Fit Page
    • Fit Width
    • Hide Unused
    • Inch
    • Off
    • PT
  • Score Symbol Editor
    • 100%
    • 200%
    • 400%
    • 600%
    • 800%
    • Align Bottom
    • Align Center Horizontally
    • Align Center Vertically
    • Align Left
    • Align Right
    • Align Top
    • Bring To Front
    • Flip +90
    • Flip -90
    • Group
    • Mirror horizontal
    • Mirror vertical
    • Send To Back
    • Ungroup
  • Score Symbol Palettes
    • Chord Symbols
    • Clef
    • Clef etc.
    • Dynamic Mapping
    • Dynamics
    • Expression Map
    • Favorites
    • Form Symbols
    • Guitar Symbols
    • Keys
    • Line/Trill
    • Note Symbols
    • Other
    • Time Sign
    • User Symbols
    • Words
  • Scores
    • Auto Group Notes
    • Computer Keyboard Input On/Off
    • Find and Replace...
    • Lyrics from Clipboard
    • Note Editing Overlay On/Off
    • Page Mode
    • Score Editor in Lower Zone: Toggle Inspector
    • Settings...
    • Staff Setup
    • Text from Clipboard
    • User Symbols...
  • Scores Statusbar
    • Toggle Filter: Bar Handles
    • Toggle Filter: Cutflag
    • Toggle Filter: Grouping
    • Toggle Filter: Hidden Notes
    • Toggle Filter: Hide
    • Toggle Filter: Layout Tool
    • Toggle Filter: Quantize
    • Toggle Filter: Split Rests
    • Toggle Filter: Stems/Beams
  • Set Insert Length
    • 1/ 1
    • 1/ 2
    • 1/ 4
    • 1/ 8
    • 1/ 16
    • 1/ 32
    • 1/ 64
    • 1/128
    • Toggle Dotted
    • Toggle Triplet
  • Tool
    • Audio Tempo Definition Tool
    • Color Tool
    • Combine Selection Tools On/Off
    • Comp Tool
    • Curve Tool
    • Cut Tool
    • Display Quantize Tool
    • Draw Tool
    • Drumstick Tool
    • Erase Tool
    • Export Range Tool
    • Free Warp Tool
    • Glue Tool
    • Hitpoint Tool
    • Insert Note Tool
    • Layout Tool
    • Mute Tool
    • Object Selection Tool
    • Object Selection Tool: Normal Sizing
    • Object Selection Tool: Sizing Applies Time Stretch
    • Object Selection Tool: Sizing Moves Content
    • Play Tool
    • Pop-up Toolbox
    • Range Selection Tool
    • Score Zoom Tool
    • Scrub Tool
    • Split Tool
    • TimeWarp Tool
    • Tool 1
    • Tool 2
    • Tool 3
    • Tool 4
    • Tool 5
    • Tool 6
    • Tool 7
    • Tool 8
    • Tool 9
    • Tool 10
    • Trim Tool
    • VariAudio Tool
    • Zoom Tool
  • Track Versions
    • Assign Common Version ID
    • Create Lanes from Versions
    • Create Versions from Lanes
    • Delete Inactive Versions of All Tracks
    • Delete Inactive Versions of Selected Tracks
    • Delete Version
    • Duplicate Version
    • New Version
    • Rename Version
    • Select Tracks with Same Version ID
  • Transport
    • Activate External Sync
    • Activate Metronome
    • Activate Punch In
    • Activate Punch Out
    • Audio Record Mode
    • Auto Quantize in Record
    • Cycle
    • Empty All Buffers
    • Enter Left Locator Position
    • Enter Locator Range Duration
    • Enter Project Cursor Position
    • Enter Punch In Position
    • Enter Punch Out Position
    • Enter Right Locator Position
    • Enter Tempo
    • Enter Time Signature
    • Exchange Left & Right Locator Positions
    • Exchange Time Formats
    • Fast Forward
    • Fast Rewind
    • Forward
    • Go to Left Locator Position
    • Go to Project End
    • Go to Project Start
    • Go to Punch In Position
    • Go to Punch Out Position
    • Go to Right Locator Position
    • Insert from All MIDI Inputs
    • Insert from Track Input as Cycle Recording
    • Insert from Track Input as Linear Recording
    • Jog Left
    • Jog Right
    • Locate Selection End
    • Locate Selection Start
    • Lock Punch Points to Locators
    • Lock Record
    • Loop Selection Range
    • Metronome Setup...
    • MIDI Cycle Record Mode
    • MIDI Record Mode
    • Nudge +1 Bar
    • Nudge +1 Frame
    • Nudge -1 Bar
    • Nudge -1 Frame
    • Nudge Cursor +5 Seconds
    • Nudge Cursor +10 Seconds
    • Nudge Cursor +20 Seconds
    • Nudge Cursor -5 Seconds
    • Nudge Cursor -10 Seconds
    • Nudge Cursor -20 Seconds
    • Nudge Cursor Left
    • Nudge Cursor Right
    • Play from Selection End
    • Play from Selection Start
    • Play Selection Range
    • Play until Selection End
    • Play until Selection Start
    • Post-roll from Selection End
    • Post-roll from Selection Start
    • Pre-roll to Selection End
    • Pre-roll to Selection Start
    • Project Synchronization Setup...
    • Recall Cycle Marker 1
    • Recall Cycle Marker 2
    • Recall Cycle Marker 3
    • Recall Cycle Marker 4
    • Recall Cycle Marker 5
    • Recall Cycle Marker 6
    • Recall Cycle Marker 7
    • Recall Cycle Marker 8
    • Recall Cycle Marker 9
    • Recall Cycle Marker X
    • Record
    • Record: Punch In & Out/Re-Record
    • Record: Start at Cursor/Left Locator
    • Restart from Last Stop Position
    • Return to Start Position
    • Return to Start Position on Stop
    • Rewind
    • Set Left Locator to Project Cursor Position
    • Set Locators to Selection Range
    • Set Marker 1
    • Set Marker 2
    • Set Marker 3
    • Set Marker 4
    • Set Marker 5
    • Set Marker 6
    • Set Marker 7
    • Set Marker 8
    • Set Marker 9
    • Set Punch In to Project Cursor Position
    • Set Punch Out to Project Cursor Position
    • Set Punch Points to Selection Range
    • Set Right Locator to Project Cursor Position
    • Shuttle Play 1/2x
    • Shuttle Play 1/4x
    • Shuttle Play 1/8x
    • Shuttle Play 1x
    • Shuttle Play 2x
    • Shuttle Play 4x
    • Shuttle Play 8x
    • Shuttle Play Reverse 1/2x
    • Shuttle Play Reverse 1/4x
    • Shuttle Play Reverse 1/8x
    • Shuttle Play Reverse 1x
    • Shuttle Play Reverse 2x
    • Shuttle Play Reverse 4x
    • Shuttle Play Reverse 8x
    • Start
    • Start Mode
    • Start/Stop
    • StartStop Preview
    • Stop
    • To Cycle Marker 1
    • To Cycle Marker 2
    • To Cycle Marker 3
    • To Cycle Marker 4
    • To Cycle Marker 5
    • To Cycle Marker 6
    • To Cycle Marker 7
    • To Cycle Marker 8
    • To Cycle Marker 9
    • To Cycle Marker X
    • To Marker 1
    • To Marker 2
    • To Marker 3
    • To Marker 4
    • To Marker 5
    • To Marker 6
    • To Marker 7
    • To Marker 8
    • To Marker 9
    • To Marker X
    • Toggle: Cycle follows when locating to Markers
    • Transport Panel
    • Unlock Record
    • Use Post-roll
    • Use Pre-/Post-Roll
    • Use Pre-roll
    • Use Precount
    • Use Tempo Track
    • Use Video Follows Edit Mode
  • Video
    • Mute all video tracks
  • VRPlayerRemote
    • GoPro VR Player Remote
  • WaveLab Exchange
    • Edit in WaveLab
  • Window Zones
    • Show/Hide Channel
    • Show/Hide Editor Visibility
    • Show/Hide Extended Left Zone
    • Show/Hide Info Line
    • Show/Hide Left Zone
    • Show/Hide Lower Zone
    • Show/Hide Overview
    • Show/Hide Regions
    • Show/Hide Right Zone
    • Show/Hide Status Line
    • Show/Hide Transport Zone
  • Windows
    • Close All
    • Close All Plug-in Windows
    • Minimize
    • Minimize All
    • Restore All
    • Show Plug-in Windows
    • Zoom
  • Workspaces
    • New
    • No Workspace
    • Organize
    • Update Workspace
    • Workspace 1
    • Workspace 2
    • Workspace 3
    • Workspace 4
    • Workspace 5
    • Workspace 6
    • Workspace 7
    • Workspace 8
    • Workspace 9
    • Workspace X
  • Zoom
    • Redo Zoom
    • Undo Zoom
    • Zoom 4 Tracks
    • Zoom 8 Tracks
    • Zoom Cycle Marker 1
    • Zoom Cycle Marker 2
    • Zoom Cycle Marker 3
    • Zoom Cycle Marker 4
    • Zoom Cycle Marker 5
    • Zoom Cycle Marker 6
    • Zoom Cycle Marker 7
    • Zoom Cycle Marker 8
    • Zoom Cycle Marker 9
    • Zoom Full
    • Zoom In
    • Zoom In On Waveform Vertically
    • Zoom In Tracks
    • Zoom In Vertically
    • Zoom MEM
    • Zoom N Tracks
    • Zoom Out
    • Zoom Out Of Waveform Vertically
    • Zoom Out Tracks
    • Zoom Out Vertically
    • Zoom Preset 1
    • Zoom Preset 2
    • Zoom Preset 3
    • Zoom Preset 4
    • Zoom Preset 5
    • Zoom Selected Tracks
    • Zoom to Event
    • Zoom to Locators
    • Zoom to Selection
    • Zoom to Selection (Horiz.)
    • Zoom Tracks 1 Row
    • Zoom Tracks 2 Rows
    • Zoom Tracks 3 Rows
    • Zoom Tracks 4 Rows
    • Zoom Tracks Full
    • Zoom Tracks Minimal
    • Zoom Tracks N Rows
    • Zoom ZAP

API Reference

MidiRemoteAPI

Entry point to the MIDI Remote API.

Properties

Methods

  • makeDeviceDriver (vendorName : string, deviceName : string, createdBy : string) : DeviceDriver

Example

1
2
3
4
5
6
7
8
9


//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------

// get the api's entry point
var midiremote_api = require('midiremote_api_v1')

// create the device driver main object
var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'SimpleDevice', 'Steinberg Media Technologies GmbH')

...
ExampleCompany_SimpleDevice.js

HostDefaults

Referenced by: MidiRemoteAPI

Methods

  • getAppName () : string
  • getNumberOfInsertEffectSlots () : number
  • getNumberOfStripEffectSlots () : number
  • getNumberOfSendSlots () : number
  • getNumberOfQuickControls () : number
  • getMaxControlRoomTalkbackChannels () : number
  • getMaxControlRoomExternalInputChannels () : number
  • getMaxControlRoomCueChannels () : number
  • getMaxControlRoomPhonesChannels () : number
  • getMaxControlRoomMonitorChannels () : number

DeviceDriver

Represents specific hardware device.

Referenced by: MidiRemoteAPI

Properties

Methods

Example

1
2
3
4
5
6
7
8
9
10
11
12


//-----------------------------------------------------------------------------
// 1. DRIVER SETUP - create driver object, midi ports and detection information
//-----------------------------------------------------------------------------

// get the api's entry point
var midiremote_api = require('midiremote_api_v1')

// create the device driver main object
var deviceDriver = midiremote_api.makeDeviceDriver('ExampleCompany', 'SimpleDevice', 'Steinberg Media Technologies GmbH')

// create objects representing the hardware's MIDI ports
var midiInput = deviceDriver.mPorts.makeMidiInput()

...
ExampleCompany_SimpleDevice.js

Ports

Device driver sub section for creating midi port objects.

Referenced by: DeviceDriver

Methods

Example



12
13


...

var midiInput = deviceDriver.mPorts.makeMidiInput()
var midiOutput = deviceDriver.mPorts.makeMidiOutput()

...
ExampleCompany_SimpleDevice.js

DeviceMidiInput

Device driver MIDI input port.

Referenced by: Ports, SurfaceValueMidiBinding, DetectionPortPair, DetectionSingleInput

Properties

Example



12


...

var midiInput = deviceDriver.mPorts.makeMidiInput()

...
ExampleCompany_SimpleDevice.js

DeviceMidiOutput

Device driver MIDI output port.

Referenced by: Ports, SurfaceValueMidiBinding, DetectionPortPair

Methods

Example



13


...

var midiOutput = deviceDriver.mPorts.makeMidiOutput()

...
ExampleCompany_SimpleDevice.js

Surface

Emulates hardware surface elements.

Referenced by: DeviceDriver

Methods

  • makePushEncoder (x : number, y : number, w : number, h : number) : PushEncoder
  • makeKnob (x : number, y : number, w : number, h : number) : Knob
  • makeFader (x : number, y : number, w : number, h : number) : Fader
  • makeButton (x : number, y : number, w : number, h : number) : Button
  • makeModWheel (x : number, y : number, w : number, h : number) : ModWheel
  • makePitchBend (x : number, y : number, w : number, h : number) : PitchBend
  • makeTriggerPad (x : number, y : number, w : number, h : number) : TriggerPad
  • makePadXY (x : number, y : number, w : number, h : number) : PadXY
  • makeJoyStickXY (x : number, y : number, w : number, h : number) : JoyStickXY
  • makeLamp (x : number, y : number, w : number, h : number) : Lamp
  • makeBlindPanel (x : number, y : number, w : number, h : number) : BlindPanel
  • makePianoKeys (x : number, y : number, w : number, h : number, firstKeyIndex : number, lastKeyIndex : number) : PianoKeys
  • makeLabelField (x : number, y : number, w : number, h : number) : SurfaceLabelField
  • makeControlLayerZone (name : string) : ControlLayerZone
  • makeCustomValueVariable (name : string) : SurfaceCustomValueVariable

Example



26
27
28
29
30
31
32
33
34
35
36


...

//-----------------------------------------------------------------------------
// 2. SURFACE LAYOUT - create control elements and midi bindings
//-----------------------------------------------------------------------------

// create control element representing your hardware's surface
var knob1 = deviceDriver.mSurface.makeKnob(0, 0, 1, 1.5)
var knob2 = deviceDriver.mSurface.makeKnob(1, 0, 1, 1.5)
var knob3 = deviceDriver.mSurface.makeKnob(2, 0, 1, 1.5)
var knob4 = deviceDriver.mSurface.makeKnob(3, 0, 1, 1.5)

// bind midi ports to surface elements

...
ExampleCompany_SimpleDevice.js

SurfaceElement

Inherited by: PushEncoder, Knob, Fader, Button, ModWheel, PitchBend, TriggerPad, PadXY, JoyStickXY, Lamp, BlindPanel, PianoKeys

Referenced by: Surface

PushEncoder

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

Knob

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

Fader

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

  • setTypeVertical () : this
  • setTypeHorizontal () : this
  • setControlLayer (controlLayer : ControlLayer) : this

Button

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

  • setTypePush () : this
  • setTypeToggle () : this
  • setShapeRectangle () : this
  • setShapeCircle () : this
  • setControlLayer (controlLayer : ControlLayer) : this

ModWheel

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

PitchBend

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

TriggerPad

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

PadXY

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

JoyStickXY

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

Lamp

Inherits From: SurfaceElement

Referenced by: Surface

Properties

Methods

  • setShapeRectangle () : this
  • setShapeCircle () : this

BlindPanel

Inherits From: SurfaceElement

Referenced by: Surface

Methods

  • setShapeRectangle () : this
  • setShapeCircle () : this

PianoKeys

Inherits From: SurfaceElement

Referenced by: Surface

SurfaceLabelField

Referenced by: Surface

Methods

ControlLayerZone

Referenced by: Surface

Methods

ControlLayer

Referenced by: ControlLayerZone, PushEncoder, Knob, Fader, Button, ModWheel, PitchBend, TriggerPad, PadXY, JoyStickXY

SurfaceValue

Represents a continuous value state of a SurfaceElement.

Inherited by: SurfaceElementValue, SurfaceCustomValueVariable

Referenced by: ValueBinding, CommandBinding, ActionBinding

SurfaceElementValue

Represents a continuous value state of a SurfaceElement.

Inherits From: SurfaceValue

Referenced by: PushEncoder, Knob, Fader, Button, ModWheel, PitchBend, TriggerPad, PadXY, JoyStickXY, Lamp, ValueBinding, CommandBinding, ActionBinding

Properties

  • mMidiBinding : SurfaceValueMidiBinding
  • mOnProcessValueChange : function (activeDevice : ActiveDevice, value : number, diff : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, r : number, g : number, b : number, a : number, isActive : boolean)
  • mTouchState : SurfaceValueTouchState

Methods

SurfaceCustomValueVariable

Represents a continuous value state of a SurfaceElement.

Inherits From: SurfaceValue

Referenced by: Surface, ValueBinding, CommandBinding, ActionBinding

Properties

  • mMidiBinding : SurfaceValueMidiBinding
  • mOnProcessValueChange : function (activeDevice : ActiveDevice, value : number, diff : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, r : number, g : number, b : number, a : number, isActive : boolean)
  • mTouchState : SurfaceValueTouchState

Methods

SurfaceValueMidiBinding

Referenced by: SurfaceElementValue, SurfaceCustomValueVariable

Methods

MidiBindingValueRange7Bit

Referenced by: MidiBindingToNote, MidiBindingToControlChange, MidiBindingToChannelPressure

MidiBindingValueRange14Bit

Referenced by: MidiBindingToControlChange14Bit, MidiBindingToControlChange14BitNRPN, MidiBindingToPitchBend

MidiChannelBinding

Inherited by: MidiBindingToNote, MidiBindingToControlChange, MidiBindingToControlChange14Bit, MidiBindingToControlChange14BitNRPN, MidiBindingToPitchBend, MidiBindingToChannelPressure

Referenced by: SurfaceValueMidiBinding

MidiBindingToNote

Inherits From: MidiChannelBinding

Referenced by: SurfaceValueMidiBinding

Methods

  • setValueRange (min : number, max : number) : this

MidiBindingToControlChange

Inherits From: MidiChannelBinding

Referenced by: SurfaceValueMidiBinding

Methods

  • setValueRange (min : number, max : number) : this
  • setTypeAbsolute () : this
  • setTypeRelativeSignedBit () : this
  • setTypeRelativeBinaryOffset () : this
  • setTypeRelativeTwosComplement () : this

MidiBindingToControlChange14Bit

Inherits From: MidiChannelBinding

Inherited by: MidiBindingToControlChange14BitNRPN

Referenced by: SurfaceValueMidiBinding

Methods

  • setValueRange (min : number, max : number) : this
  • setTypeAbsolute () : this
  • setTypeRelativeSignedBit () : this
  • setTypeRelativeBinaryOffset () : this
  • setTypeRelativeTwosComplement () : this

MidiBindingToControlChange14BitNRPN

Inherits From: MidiChannelBinding

Referenced by: SurfaceValueMidiBinding

Methods

  • setValueRange (min : number, max : number) : this
  • setTypeAbsolute () : this
  • setTypeRelativeSignedBit () : this
  • setTypeRelativeBinaryOffset () : this
  • setTypeRelativeTwosComplement () : this

MidiBindingToPitchBend

Inherits From: MidiChannelBinding

Referenced by: SurfaceValueMidiBinding

Properties

MidiBindingToChannelPressure

Inherits From: MidiChannelBinding

Referenced by: SurfaceValueMidiBinding

Properties

SurfaceValueTouchState

Referenced by: SurfaceElementValue, SurfaceCustomValueVariable

Methods

Example

var midiremote_api = require('midiremote_api_v1');
var deviceDriver = midiremote_api.makeDeviceDriver('DocuVendor', 'ExampleDevice Mk I', 'Example Author');
var fader = deviceDriver.mSurface.makeFader(0, 0, 1, 1)
fader.mSurfaceValue.mMidiBinding.setInputPort(midiIn).setOutputPort(midiOut).bindToControlChange(0, 64)

// backward compatibility: check API 1.1 feature exists
if(fader.mSurfaceValue.mTouchState) {
    var faderTouch = driver.mSurface.makeCustomValueVariable('faderTouch')
    faderTouch.mMidiBinding.setInputPort(midiIn).setOutputPort(midiOut).bindToNote(0, 64)
    fader.mSurfaceValue.mTouchState.bindTo(faderTouch)
}

Mapping

Inherited by: FactoryMapping

FactoryMapping

Inherits From: Mapping

Referenced by: DeviceDriver

Methods

Page

Inherited by: FactoryMappingPage

FactoryMappingPage

Inherits From: Page

Referenced by: FactoryMapping

Properties

Methods

HostAccess

Provides objects and methods to bind the defined Surface to host functions.

Referenced by: FactoryMappingPage

Properties

Example



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73


...

//-----------------------------------------------------------------------------
// 3. HOST MAPPING - create mapping pages and host bindings
//-----------------------------------------------------------------------------

// create at least one mapping page
var page = deviceDriver.mMapping.makePage('Example Mixer Page')

// create host accessing objects
var hostSelectedTrackChannel = page.mHostAccess.mTrackSelection.mMixerChannel


// bind surface elements to host accessing object values
page.makeValueBinding(knob1.mSurfaceValue, hostSelectedTrackChannel.mValue.mVolume)
page.makeValueBinding(knob2.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(0).mLevel)
page.makeValueBinding(knob3.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(1).mLevel)
page.makeValueBinding(knob4.mSurfaceValue, hostSelectedTrackChannel.mSends.getByIndex(2).mLevel)


...
ExampleCompany_SimpleDevice.js

HostObject

Inherited by: HostObjectUndefined, Transport, QuickControls, FocusedQuickControls, HostPluginParameterBankZone, HostStripEffectSlotFolder, SendSlotFolder, ControlRoomCueSendSlotFolder, MixerBankChannel, SelectedTrackChannel, HostMouseCursor, HostControlRoomChannelMain, HostControlRoomChannelPhonesByIndex, HostControlRoomChannelCueByIndex, HostControlRoomChannelExternalInputByIndex, HostControlRoomChannelTalkbackByIndex, HostControlRoomChannelMonitorByIndex, HostControlRoom, MixConsole, TransportValues, PreFilter, ChannelEQBand, ChannelEQ, HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, HostInsertAndStripEffects, SendSlot, ControlRoomCueSendSlot, MixerChannelValues, MixerBankZone, TrackSelection

HostObjectUndefined

Inherits From: HostObject

Referenced by: FactoryMappingPage

Properties

  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, title : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

Transport

Access transport functions.

Inherits From: HostObject

Referenced by: HostAccess

Properties

QuickControls

Inherits From: HostObject

Inherited by: FocusedQuickControls

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, title : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

FocusedQuickControls

Inherits From: HostObject

Referenced by: HostAccess, MixerBankChannel, SelectedTrackChannel

Properties

Methods

HostPluginParameterBankZone

Inherits From: HostObject

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer

Properties

Methods

HostStripEffectSlotFolder

Inherits From: HostObject

Referenced by: HostInsertAndStripEffects

Properties

SendSlotFolder

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, title : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

  • getByIndex (index : number) : SendSlot
  • getSize () : number

ControlRoomCueSendSlotFolder

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

Methods

MixerBankChannel

Inherits From: HostObject

Referenced by: MixerBankZone

Properties

SelectedTrackChannel

Inherits From: HostObject

Referenced by: TrackSelection

Properties

HostMouseCursor

Inherits From: HostObject

Referenced by: HostAccess

Properties

HostControlRoomChannelMain

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

Methods

HostControlRoomChannelPhonesByIndex

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

Methods

HostControlRoomChannelCueByIndex

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

HostControlRoomChannelExternalInputByIndex

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

HostControlRoomChannelTalkbackByIndex

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

HostControlRoomChannelMonitorByIndex

Inherits From: HostObject

Referenced by: HostControlRoom

Properties

HostControlRoom

Inherits From: HostObject

Referenced by: HostAccess

Properties

Methods

MixConsole

Inherits From: HostObject

Referenced by: HostAccess

Properties

  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, title : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

TransportValues

Inherits From: HostObject

Referenced by: Transport

Properties

PreFilter

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

ChannelEQBand

Inherits From: HostObject

Referenced by: ChannelEQ

Properties

ChannelEQ

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

HostInstrumentPluginSlot

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

HostStripEffectSlotGate

Inherits From: HostObject

Referenced by: HostStripEffectSlotFolder

Properties

HostStripEffectSlotCompressor

Inherits From: HostObject

Referenced by: HostStripEffectSlotFolder

Properties

HostStripEffectSlotLimiter

Inherits From: HostObject

Referenced by: HostStripEffectSlotFolder

Properties

HostStripEffectSlotSaturator

Inherits From: HostObject

Referenced by: HostStripEffectSlotFolder

Properties

HostStripEffectSlotTools

Inherits From: HostObject

Referenced by: HostStripEffectSlotFolder

Properties

HostInsertEffectViewer

Inherits From: HostObject

Referenced by: HostInsertAndStripEffects

Properties

Methods

  • includeEmptySlotsOnly () : this
  • excludeEmptySlots () : this
  • followPluginWindowInFocus () : this

HostInsertAndStripEffects

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

Methods

SendSlot

Inherits From: HostObject

Referenced by: SendSlotFolder

Properties

ControlRoomCueSendSlot

Inherits From: HostObject

Referenced by: ControlRoomCueSendSlotFolder

Properties

MixerChannelValues

Inherits From: HostObject

Referenced by: MixerBankChannel, SelectedTrackChannel

Properties

MixerBankZone

Inherits From: HostObject

Referenced by: MixConsole

Properties

Methods

  • includeAudioChannels () : this
  • includeInstrumentChannels () : this
  • includeSamplerChannels () : this
  • includeMIDIChannels () : this
  • includeFXChannels () : this
  • includeGroupChannels () : this
  • includeVCAChannels () : this
  • includeInputChannels () : this
  • includeOutputChannels () : this
  • includeWindowZoneLeftChannels () : this
  • includeWindowZoneRightChannels () : this
  • excludeAudioChannels () : this
  • excludeInstrumentChannels () : this
  • excludeSamplerChannels () : this
  • excludeMIDIChannels () : this
  • excludeFXChannels () : this
  • excludeGroupChannels () : this
  • excludeVCAChannels () : this
  • excludeInputChannels () : this
  • excludeOutputChannels () : this
  • excludeWindowZoneLeftChannels () : this
  • excludeWindowZoneRightChannels () : this
  • setFollowVisibility (followVisibility : boolean) : this
  • makeMixerBankChannel () : MixerBankChannel

TrackSelection

Inherits From: HostObject

Referenced by: HostAccess

Properties

HostValue

Represents a continuous value state of a HostObject.

Inherited by: HostValueUndefined, StartValue, StopValue, RecordValue, RewindValue, ForwardValue, CycleActiveValue, MetronomeActiveValue, MetronomeClickLevel, VolumeValue, PanValue, MuteValue, SoloValue, MonitorEnableValue, RecordEnableValue, EditorOpenValue, InstrumentOpenValue, SelectedValue, AutomationReadValue, AutomationWriteValue, VUMeterValue, VUMeterMaxValue, VUMeterClipValue, VUMeterPeakValue, SendOn, SendPrePost, SendLevel, ControlRoomCueSendOnValue, ControlRoomCueSendPrePostValue, ControlRoomCueSendLevelValue, ControlRoomCueSendPanValue, ControlRoomCueSendFolderBypassValue, PluginOnValue, PluginBypassValue, PluginEditValue, PreFilterBypassValue, PreFilterGainValue, PreFilterPhaseSwitchValue, PreFilterHighCutFrequencyValue, PreFilterHighCutOnValue, PreFilterHighCutSlopeValue, PreFilterLowCutFrequencyValue, PreFilterLowCutOnValue, PreFilterLowCutSlopeValue, EQBandGainValue, EQBandFrequencyValue, EQBandQualityValue, EQBandOnValue, EQBandFilterTypeValue, QuickControlValue, FocusedQuickControlsLockedStateValue, HostPluginParameterBankValue, HostValueAtMouseCursor, HostValueAtMouseCursorLockedState, HostControlRoomValue, HostControlRoomSelectSourceCueValueByIndex, HostControlRoomSelectTargetMonitorValueByIndex, HostControlRoomSelectSourceExternalInputValueByIndex

Referenced by: ValueBinding

HostValueUndefined

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostObjectUndefined, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

StartValue

Indicates if transport has been started.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

StopValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

RecordValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

RewindValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ForwardValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

CycleActiveValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

MetronomeActiveValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

MetronomeClickLevel

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: TransportValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

VolumeValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PanValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

MuteValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

SoloValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

MonitorEnableValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

RecordEnableValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EditorOpenValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

InstrumentOpenValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

SelectedValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

AutomationReadValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

AutomationWriteValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

VUMeterValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

VUMeterMaxValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

VUMeterClipValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

VUMeterPeakValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: MixerChannelValues, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

SendOn

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: SendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

SendPrePost

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: SendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

SendLevel

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: SendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ControlRoomCueSendOnValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ControlRoomCueSendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ControlRoomCueSendPrePostValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ControlRoomCueSendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ControlRoomCueSendLevelValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ControlRoomCueSendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ControlRoomCueSendPanValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ControlRoomCueSendSlot, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

ControlRoomCueSendFolderBypassValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ControlRoomCueSendSlotFolder, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PluginOnValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PluginBypassValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PluginEditValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostInstrumentPluginSlot, HostStripEffectSlotGate, HostStripEffectSlotCompressor, HostStripEffectSlotLimiter, HostStripEffectSlotSaturator, HostStripEffectSlotTools, HostInsertEffectViewer, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterBypassValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterGainValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterPhaseSwitchValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterHighCutFrequencyValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterHighCutOnValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterHighCutSlopeValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterLowCutFrequencyValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterLowCutOnValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

PreFilterLowCutSlopeValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: PreFilter, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EQBandGainValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ChannelEQBand, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EQBandFrequencyValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ChannelEQBand, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EQBandQualityValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ChannelEQBand, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EQBandOnValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ChannelEQBand, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

EQBandFilterTypeValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: ChannelEQBand, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

QuickControlValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: QuickControls, FocusedQuickControls, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

FocusedQuickControlsLockedStateValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: FocusedQuickControls, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostPluginParameterBankValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostPluginParameterBankZone, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostValueAtMouseCursor

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostMouseCursor, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostValueAtMouseCursorLockedState

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostMouseCursor, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostControlRoomValue

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostControlRoomChannelMain, HostControlRoomChannelPhonesByIndex, HostControlRoomChannelCueByIndex, HostControlRoomChannelExternalInputByIndex, HostControlRoomChannelTalkbackByIndex, HostControlRoomChannelMonitorByIndex, HostControlRoom, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostControlRoomSelectSourceCueValueByIndex

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostControlRoomChannelMain, HostControlRoomChannelPhonesByIndex, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostControlRoomSelectTargetMonitorValueByIndex

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostControlRoom, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

HostControlRoomSelectSourceExternalInputValueByIndex

Represents a continuous value state of a HostObject.

Inherits From: HostValue

Referenced by: HostControlRoom, ValueBinding

Properties

  • mOnProcessValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : number)
  • mOnDisplayValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, value : string, units : string)
  • mOnTitleChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, objectTitle : string, valueTitle : string)
  • mOnColorChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, r : number, g : number, b : number, a : number, isActive : boolean)

Methods

TransportTimeDisplayDetails

Inherited by: TransportTimeDisplayDetailsPrimary, TransportTimeDisplayDetailsSecondary

TransportTimeDisplayDetailsPrimary

Inherits From: TransportTimeDisplayDetails

Referenced by: TransportTimeDisplay

Properties

TransportTimeDisplayDetailsSecondary

Inherits From: TransportTimeDisplayDetails

Referenced by: TransportTimeDisplay

Properties

TransportTimeDisplay

Referenced by: Transport

Properties

Methods

TransportTime

Referenced by: TransportTimeDisplayDetailsPrimary, TransportTimeDisplayDetailsSecondary

Properties

Methods

HostPluginParameterBankZoneActions

Referenced by: HostPluginParameterBankZone

Properties

HostInsertEffectFilter

Inherited by: HostInsertEffectFilterIncludeEmptySlotsOnly, HostInsertEffectFilterExcludeEmptySlots, HostInsertEffectFilterFollowPluginWindowInFocus

Referenced by: HostInsertEffectViewer

HostInsertEffectFilterIncludeEmptySlotsOnly

Inherits From: HostInsertEffectFilter

Referenced by: HostInsertEffectViewer

HostInsertEffectFilterExcludeEmptySlots

Inherits From: HostInsertEffectFilter

Referenced by: HostInsertEffectViewer

HostInsertEffectFilterFollowPluginWindowInFocus

Inherits From: HostInsertEffectFilter

Referenced by: HostInsertEffectViewer

HostInsertEffectViewerActions

Referenced by: HostInsertEffectViewer

Properties

MixerBankZoneActions

Referenced by: MixerBankZone

Properties

TrackSelectionActions

Referenced by: TrackSelection

Properties

HostBinding

Inherited by: ValueBinding, CommandBinding, ActionBinding

Referenced by: FactoryMappingPage

ValueBinding

Inherits From: HostBinding

Referenced by: FactoryMappingPage

Properties

  • mOnValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, currValue : number, valueDiff : number)

Methods

  • setTypeDefault () : this
  • setTypeToggle () : this
  • setValueTakeOverModeJump () : this
  • setValueTakeOverModePickup () : this
  • setValueTakeOverModeScaled () : this
  • setSubPage (subPage : SubPage) : this
  • filterByValue (filterValue : number) : this
  • filterByValueRange (from : number, to : number) : this
  • mapToValue (mapValue : number) : this
  • mapToValueRange (from : number, to : number) : this

CommandBinding

Inherits From: HostBinding

Referenced by: FactoryMappingPage

Properties

  • mOnValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, currValue : number, valueDiff : number)

Methods

  • makeRepeating (delaySeconds : number, rateHz : number) : Repeating
  • setSubPage (subPage : SubPage) : this
  • filterByValue (filterValue : number) : this
  • filterByValueRange (from : number, to : number) : this
  • mapToValue (mapValue : number) : this
  • mapToValueRange (from : number, to : number) : this

ActionBinding

Inherits From: HostBinding

Referenced by: FactoryMappingPage

Properties

  • mOnValueChange : function (activeDevice : ActiveDevice, activeMapping : ActiveMapping, currValue : number, valueDiff : number)

Methods

  • makeRepeating (delaySeconds : number, rateHz : number) : Repeating
  • setSubPage (subPage : SubPage) : this
  • filterByValue (filterValue : number) : this
  • filterByValueRange (from : number, to : number) : this
  • mapToValue (mapValue : number) : this
  • mapToValueRange (from : number, to : number) : this

SubPageArea

Referenced by: FactoryMappingPage

Properties

Methods

  • makeSubPage (name : string) : SubPage

SubPageAreaActions

Referenced by: SubPageArea

Properties

SubPage

Referenced by: SubPageArea, ValueBinding, CommandBinding, ActionBinding

Properties

SubPageActions

Referenced by: SubPage

Properties

Repeating

Referenced by: CommandBinding, ActionBinding

MappingPageActions

Referenced by: FactoryMappingPage

Properties

DeviceDetectionUnit

Define device auto detection.

Referenced by: DeviceDriver

Methods

Example



11
12
13
14
15
16
17
18
19
20
21
22
23
24


...

// create objects representing the hardware's MIDI ports
var midiInput = deviceDriver.mPorts.makeMidiInput()
var midiOutput = deviceDriver.mPorts.makeMidiOutput()

// define all possible namings the devices MIDI ports could have
// NOTE: Windows and MacOS handle port naming differently
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('SimpleDevice IN')
    .expectOutputNameEquals('SimpleDevice OUT')
    
deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('SimpleDevice (MIDI IN)')
    .expectOutputNameEquals('SimpleDevice (MIDI OUT)')


...
ExampleCompany_SimpleDevice.js

DetectionEntry

Inherited by: DetectionPortPair, DetectionSingleInput

Referenced by: DeviceDetectionUnit

DetectionPortPair

Define port naming pair.

Inherits From: DetectionEntry

Referenced by: DeviceDetectionUnit

Methods

  • expectInputNameContains (filterValue : string) : this
  • expectInputNameEquals (filterValue : string) : this
  • expectInputNameStartsWith (filterValue : string) : this
  • expectInputNameEndsWith (filterValue : string) : this
  • expectOutputNameContains (filterValue : string) : this
  • expectOutputNameEquals (filterValue : string) : this
  • expectOutputNameStartsWith (filterValue : string) : this
  • expectOutputNameEndsWith (filterValue : string) : this
  • expectSysexIdentityResponse (manufacturerID : string, deviceFamily : string, modelNumber : string) : this

Example



17
18
19
20


...

deviceDriver.makeDetectionUnit().detectPortPair(midiInput, midiOutput)
    .expectInputNameEquals('SimpleDevice IN')
    .expectOutputNameEquals('SimpleDevice OUT')
    

...
ExampleCompany_SimpleDevice.js

DetectionSingleInput

Inherits From: DetectionEntry

Referenced by: DeviceDetectionUnit

Methods

  • expectInputNameContains (filterValue : string) : this
  • expectInputNameEquals (filterValue : string) : this
  • expectInputNameStartsWith (filterValue : string) : this
  • expectInputNameEndsWith (filterValue : string) : this

DeviceDriverActions

Referenced by: DeviceDriver

Properties

InitialSysexFile

Referenced by: DeviceDriver

UserGuide

Referenced by: DeviceDriver

HostAction

Inherited by: HostPluginParameterBankZoneAction, HostInsertEffectViewerAction, MixerBankZoneAction, TrackSelectionAction, SubPageActionActivate, SubPageAreaAction, MappingPageActionActivate, DeviceDriverAction

Referenced by: ActionBinding

HostPluginParameterBankZoneAction

Inherits From: HostAction

Referenced by: HostPluginParameterBankZoneActions, ActionBinding

Methods

HostInsertEffectViewerAction

Inherits From: HostAction

Referenced by: HostInsertEffectViewerActions, ActionBinding

Methods

MixerBankZoneAction

Inherits From: HostAction

Referenced by: MixerBankZoneActions, ActionBinding

Methods

TrackSelectionAction

Inherits From: HostAction

Referenced by: TrackSelectionActions, ActionBinding

Methods

SubPageActionActivate

Inherits From: HostAction

Referenced by: SubPageActions, ActionBinding

Methods

SubPageAreaAction

Inherits From: HostAction

Referenced by: SubPageAreaActions, ActionBinding

Methods

MappingPageActionActivate

Inherits From: HostAction

Referenced by: MappingPageActions, ActionBinding

Methods

DeviceDriverAction

Inherits From: HostAction

Referenced by: DeviceDriverActions, ActionBinding

Methods

ActiveDevice

Represents a detected and activated device of a specific DeviceDriver.

Methods

  • setState (key : string, val : string)
  • getState (key : string) : string

ActiveMapping